package com.suep.business.service;

import java.math.BigDecimal;
import java.util.List;

import com.suep.business.domain.OrderItem;
import org.springframework.stereotype.Service;

/**
 * 订单商品项业务逻辑接口
 * 提供订单商品项相关的增删改查方法
 */
@Service
public interface IOrderItemService {

    /**
     * 插入一个订单商品项
     *
     * @param orderItem 要插入的订单商品项对象
     * @return 插入操作影响的行数
     */
    Integer insertOrderItem(OrderItem orderItem);

    /**
     * 根据主键ID查询订单商品项
     *
     * @param orderItemId 订单商品项主键ID
     * @return 对应的订单商品项对象，如果没有找到则返回null
     */
    OrderItem selectOrderItemById(Integer orderItemId);

    /**
     * 根据订单ID查询订单商品项列表
     *
     * @param orderId 订单ID
     * @return 该订单下的订单商品项列表
     */
    List<OrderItem> selectOrderItemsByOrderId(Long orderId);

    /**
     * 根据商品ID查询订单商品项列表
     *
     * @param mealId 商品ID
     * @return 包含该商品的订单商品项列表
     */
    List<OrderItem> selectOrderItemsByMealId(Integer mealId);

    /**
     * 更新一个订单商品项
     *
     * @param orderItem 要更新的订单商品项对象
     * @return 更新操作影响的行数
     */
    Integer updateOrderItem(OrderItem orderItem);

    /**
     * 根据主键ID删除一个订单商品项
     *
     * @param orderItemId 订单商品项主键ID
     * @return 删除操作影响的行数
     */
    Integer deleteOrderItemById(Integer orderItemId);
}
